import { setToken } from '../../utils/setToken'
Page({
  data: {
    // 倒计时
    countDown: 0,
    // 手机号
    mobile: '',
    // 验证码
    code: '',
    // 重定向页面
    from: '',
    // 重定向类型
    type: ''
  },
  onLoad(options) {
    console.log('传入页面参数', options);
    this.setData({
      from: options.from,
      type: options.type
    })
  },
  // 登录
  handleLoginTap() {
    console.log('login start');
    // 表单验证
    if (!this.isMobileValid()) {
      return wx.showToast({
        title: '手机号格式错误',
        icon: 'none'
      })
    }
    // 表单验证
    if (!this.isCodeValid()) {
      return wx.showToast({
        title: '手机号格式错误',
        icon: 'none'
      })
    }
    // 发起登录请求
    this.login()
  },
  // 验证码校验
  isCodeValid() {
    // 验证码为6位数字
    const reg = /^\d{6}$/
    // 验证验证码
    const valid = reg.test(this.data.code.trim())
    // 返回验证结果
    return valid
  },
  // 登录
  login() {
    wx.request({
      url: 'https://live-api.itheima.net/login',
      method: 'POST',
      data: {
        mobile: this.data.mobile,
        code: this.data.code
      },
      success: (res) => {
        console.log('登录结果', res);
        if (res.data.code !== 10000) {
          return wx.showToast({
            title: res.data.message,
            icon: 'none'
          })
        }
        // 保存到本地
        setToken('token', res.data.data.token)
        // 重定向
        if (this.data.from) {
          //      // 判断是否从 tabBar 页面跳转而来
          if (this.data.type === 'switchTab') {
            wx.switchTab({
              url: this.data.from,
            })
          } else {
            wx.redirectTo({
              url: this.data.from,
            })
          }

        }
      }
    })
  },
  handleGetCodeTap() {
    // 表单验证
    if (!this.isMobileValid()) {
      return wx.showToast({
        title: '手机号格式错误',
        icon: 'none'
      })
    }
    // 获取验证码
    this.getCode()
    this.startCountDown()
  },
  // 手机号表单验证
  isMobileValid() {
    // 验证手机号
    const reg = /^[1][3-8][0-9]{9}$/
    const valid = reg.test(this.data.mobile.trim())
    return valid
  },
  getCode() {
    // 发起请求
    wx.request({
      url: 'https://live-api.itheima.net/code',
      method: 'GET',
      data: {
        mobile: this.data.mobile
      },
      success: (res) => {
        // 业务判断
        if (res.data.code !== 10000) {
          return wx.showToast({
            title: 'res.data.message',
            icon: 'none'
          })
        }
        wx.showToast({
          title: '',
          icon: 'none'
        })
        this.setData({
          code: res.data.data.code
        })
        console.log('获取验证码成功', res.data.data.code);

      }
    })
  },
  startCountDown() {
    this.setData({
      countDown: 10
    })
    clearInterval(this.timerId)
    this.timerId = setInterval(() => {
      if (this.data.countDown === 0) {
        clearInterval(this.timerId)
        return
      }
      this.setData({
        countDown: this.data.countDown - 1
      })
    }, 1000)
  }
});
